package com.sakura.flowers.util;


import lombok.Data;
import lombok.experimental.Accessors;


/**
 * @author : Sakura
 * @Date : 2023/4/21 15:14
 */
@Data
@Accessors(chain = true)
public class R<T> {
    //记录状态
    private boolean status;
    //记录处理详细信息
    private String msg;
    //记录数据
    private T data;



    /**
     * 处理正确消息的方法
     * @param object:
     * @return R<T>
     * @author Sakura
     * @date 2023/1/8 13:40
     */
    public static <T> R<T> success(T object) {

        R<T> r = new R<T>();

        r.data = object;

        r.status = true;

        return r;

    }
    public static <T> R<T> success() {
        R<T> r = new R<T>();
        r.status = true;
        return r;
    }

    /**
     * 处理错误消息的方法
     * @param msg:
     * @return R<T>
     * @author Sakura
     * @date 2023/1/8 13:40
     */
    public static <T> R<T> error(String msg) {

        R r = new R();

        r.msg = msg;

        r.status = false;

        return r;
    }
    /**
     * 处理错误消息的方法
     * @param msg:
     * @return R<T>
     * @author Sakura
     * @date 2023/1/8 13:40
     */
    public static <T> R<T> error(String msg, T data) {

        R r = new R();

        r.msg = msg;
        r.data = data;

        r.status = false;

        return r;
    }
    /**
     * 将执行结果返回给前端
     *
     * @param result:
     * @return R<?>
     * @author Sakura
     * @date 2023/11/22 18:33
     */
    public static R<?> getResult(boolean result) {
        if (!result) {
            return R.error("操作失败，请重新尝试");
        }
        return R.success("操作成功");
    }
}
